#ifndef __RT_THREAD_DEMO_H
#define __RT_THREAD_DEMO_H

#include "../hardware/Flight_control/fly_control.h"     // 飞控

#define RT_THREAD_FLY_DEBUG 0      // 定义为0则隐藏调试_LED和KEY线程，定义为1则启用调试线程 -(调试rt_thread库相关功能)
#define RT_THREAD_SERIAL_DEBUG 0   // 定义为1则启用串口调试输出，定义为0则关闭串口调试输出   --(利用串口调试外设功能)
#define LIBC_ENABLE 1              // 是否启用了libc库
#define LOC(i)  (0x01 << (i))      // LOC(i)表示信号集32位中的第i位（0~31）

#define TILT_PROTECT_ENABLE   1      // 是否启用倾斜保护（1=启用，0=关闭）
#define TILT_MAX_ANGLE_DEG    10     // 倾斜最大阈值（单位：度，例：45度）


void thread_t_init(void);          // 初始化线程
void sem_init(void);               // 初始化信号量
void event_init(void);             // 初始化事件集

#if RT_THREAD_FLY_DEBUG == 1
void entry_led(void *p);           // LED线程入口
void entry_key(void *p);           // KEY线程入口
#endif
void entry1_JY901(void *p);        // JY901线程入口
void entry2_PID(void *p);          // PID控制线程入口
void entry3_MS53L_BMP280(void *p); // MS53L和BMP280传感器数据采集线程入口
void entry4_USER(void *p);         // 用户自定义线程入口
void entry5_MP3(void *p);          // MP3线程入口
void entry6_RGB(void *p);          // RGB线程入口
void entry7_START(void *p);        // 解锁线程入口

#endif
